package model

import (
	"go-blog/utils/errmsg"

	"gorm.io/gorm"
)

type User struct {
	gorm.Model
	Username string `gorm:"type:varchar(20);not null " json:"username" validate:"required,min=4,max=12" label:"用户名"`
	Password string `gorm:"type:varchar(500);not null" json:"password" validate:"required,min=6,max=120" label:"密码"`
	Role     int    `gorm:"type:int;DEFAULT:2" json:"role" validate:"required,gte=2" label:"角色码"`
}

// CheckUser 查询用户是否存在
func CheckUser(name string) (code int) {
	return errmsg.SUCCSE

}

// CheckUpUser 更新查询
func CheckUpUser(id int, name string) (code int) {

	return errmsg.SUCCSE
}

// CreateUser 新增用户
func CreateUser(data *User) int {
	return errmsg.SUCCSE
}

// GetUser 查询用户
func GetUser(id int) (User, int) {
	return user, errmsg.SUCCSE
}

// GetUsers 查询用户列表
func GetUsers(username string, pageSize int, pageNum int) ([]User, int64) {
	return user, errmsg.SUCCSE
}

// EditUser 编辑用户信息
func EditUser(id int, data *User) int {
	return errmsg.SUCCSE
}

// ChangePassword 修改密码
func ChangePassword(id int, data *User) int {

}

// DeleteUser 删除用户
func DeleteUser(id int) int {

}

// BeforeCreate 密码加密&权限控制
func (u *User) BeforeCreate(_ *gorm.DB) (err error) {

}

func (u *User) BeforeUpdate(_ *gorm.DB) (err error) {

}

// ScryptPw 生成密码
func ScryptPw(password string) string {

}

// CheckLogin 后台登录验证
func CheckLogin(username string, password string) (User, int) {

}

// CheckLoginFront 前台登录
func CheckLoginFront(username string, password string) (User, int) {
}
